package com.weighing.system.service.server;

import com.baomidou.mybatisplus.extension.service.IService;
import com.weighing.system.domain.server.WeighingMaster;

import java.util.Map;

public interface WeighingMasterService extends IService<WeighingMaster> {

    /**
     * 根据工单号查询称重单
     * @param fromBillNo 工单号
     * @return WeighingMaster
     */
    WeighingMaster getByBillNo005(String fromBillNo);

    /**
     * 根据工单号查询下料单
     * @param fromBillNo 工单号
     * @return WeighingMaster
     */
    WeighingMaster getByBillNo006(String fromBillNo);

    /**
     * 校验重量
     * @param billNo 工单号
     * @param subMaterialId 物料ID
     * @param weight 重量
     * @return boolean
     */
    Map<String, Object> checkWeighing(String billNo, String subMaterialId, Double  weight);

    /**
     * 新增称重记录
     * @param billNo 工单号
     * @param materialId 材质ID
     * @param weight 称重
     */
    void addWeighingDetail(String billNo, String materialId, Double weight, String authorizerPersonId, String authorizerPersonName);

    /**
     * 根据单据编号查询称重单
     * @param billNo 工单号
     * @return WeighingMaster
     */
    WeighingMaster getWeighingMasterByBillNo(String billNo);

    /**
     * 称重单完成 并生成006下料单
     * @param billNo 单据编号
     */
    void weighingMasterFinished(String billNo);

    /**
     * 根据单据编号查询下料单
     * @param billNo 单据编号
     * @return WeighingMaster
     */
    WeighingMaster getWeighingMaster006ByBillNo(String billNo);

    /**
     * 扫码下料
     * @param billNo 单据编号
     * @param rowNo rowCode
     */
    void scanWeighingDetail(String billNo, Integer rowNo);


    /**
     * 密码匹配
     * @param userId 用户ID
     * @param rawPassword 原始密码
     * @return  boolean
     */
    boolean matchesPassword(String userId, String rawPassword);
}
